Conversation
There was a problem hiding this comment.
Pull request overview
This PR adds a blog post announcing the implementation of Code Mode MCP in goose v1.17.0, following similar approaches described by Cloudflare and Anthropic. The post explains how goose uses JavaScript code generation and the Boa engine to enable models to discover and chain tool calls more efficiently.
- Adds a new author entry for Alex Hancock to the blog authors file
- Creates a blog post explaining Code Mode MCP implementation in goose
- Includes metadata for social media sharing
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| documentation/blog/authors.yml | Adds author profile for alexhancock with social links |
| documentation/blog/2025-12-15-code-mode-mcp/index.md | New blog post documenting Code Mode MCP implementation in goose |
57067a7 to
d48157d
Compare
|
d48157d to
2e027d6
Compare
2e027d6 to
5a6be6b
Compare
5a6be6b to
659d6c0
Compare
|
|
||
| ## In goose | ||
|
|
||
| In v1.17.0 of goose, we've introduced an open source implementation of this idea in a new platform extension called: Code Execution. |
There was a problem hiding this comment.
this is not out yet..so we should make it clear to people that it's coming up.
Because the blog is going to merge and go live immediately..and people will say where is code mode, but we're all on 1.16.1
There was a problem hiding this comment.
yeah agreed! going to wait for release
There was a problem hiding this comment.
ADD THE WORDS CODE MODE ON HERE..BIG LETTERS ..or share the canva file with me so i can edit. this is one we want people to click a ton 🔥 thank you for writing this!!!
|
|
||
| * The model can progressively discover relevant tools, without all server and tool definitions in the context window from the beginning | ||
| * The model can chain tool call results into inputs to further tool calls without the intermediate results needing to flow back to the model, costing tokens and exposing data which is potentially sensitive to the model unnecessarily | ||
| * The models pre-training datasets have made them very efficient at analyzing large programmatic APIs and deciding how to usefully call them, as compared to having been trained only on contrived examples of MCP tool calling |
There was a problem hiding this comment.
| * The models pre-training datasets have made them very efficient at analyzing large programmatic APIs and deciding how to usefully call them, as compared to having been trained only on contrived examples of MCP tool calling | |
| * The models pre-training datasets have made them very efficient at analyzing large programmatic APIs and deciding how to usefully call them, as compared to having been trained only on contrived examples of MCP tool calling | |
| * This could allow 100s of MCPs to be made available to the agent, with 1000s of tools, without consuming the context window, as they are only progressively loaded when needed or discovered | |
| * MCP Extensions can be enabled by default, vs needing to remember to turn them on and off |
| <head> | ||
| <meta property="og:title" content="Code Mode MCP in goose" /> | ||
| <meta property="og:type" content="article" /> | ||
| <meta property="og:url" content="https://block.github.io/goose/blog/2025/12/15/code-mode-mcp-in-goose" /> |
There was a problem hiding this comment.
The URL path in the og:url meta tag references "2025/12/15" which is inconsistent with the future date issue. This should match the actual publication date of the blog post.
| <meta property="og:url" content="https://block.github.io/goose/blog/2025/12/15/code-mode-mcp-in-goose" /> | |
| <meta property="og:url" content="https://block.github.io/goose/blog/2024/12/15/code-mode-mcp-in-goose" /> |
1bdca0e to
cb716a6
Compare
cb716a6 to
2beebd9
Compare
|
|
||
| In v1.17.0 of goose, we've introduced an open source implementation of this idea in a new platform extension called: Code Execution. | ||
| Our implementation generates a JavaScript interface representing the connected MCP tools and then lets the model write code to run | ||
| against it in [boa](https://github.com/boa-dev/boa) which is an embeddable Javascript engine. One neat feature of boa we were able |
There was a problem hiding this comment.
Inconsistent capitalization of "JavaScript". The term should be consistently capitalized as "JavaScript" (capital S) throughout the document, but line 38 uses "Javascript".
| against it in [boa](https://github.com/boa-dev/boa) which is an embeddable Javascript engine. One neat feature of boa we were able | |
| against it in [boa](https://github.com/boa-dev/boa) which is an embeddable JavaScript engine. One neat feature of boa we were able |
|
|
||
| * The model can progressively discover relevant tools, without all server and tool definitions in the context window from the beginning | ||
| * The model can chain tool call results into inputs to further tool calls without the intermediate results needing to flow back to the model - this saves on tokens and avoids exposing potentially sensitive data to the model unnecessarily | ||
| * The models pre-training datasets have made them very efficient at analyzing large programmatic APIs and writing code to call them, as compared to having been trained only on contrived examples of MCP tool calling |
There was a problem hiding this comment.
Missing possessive apostrophe. "models pre-training datasets" should be "models' pre-training datasets" (or "model's pre-training datasets" if referring to a singular model).
| * The models pre-training datasets have made them very efficient at analyzing large programmatic APIs and writing code to call them, as compared to having been trained only on contrived examples of MCP tool calling | |
| * The models' pre-training datasets have made them very efficient at analyzing large programmatic APIs and writing code to call them, as compared to having been trained only on contrived examples of MCP tool calling |
| <head> | ||
| <meta property="og:title" content="Code Mode MCP in goose" /> | ||
| <meta property="og:type" content="article" /> | ||
| <meta property="og:url" content="https://block.github.io/goose/blog/2025/12/15/code-mode-mcp-in-goose" /> |
There was a problem hiding this comment.
The og:url metadata uses "code-mode-mcp-in-goose" but the folder is named "code-mode-mcp". Based on other blog posts, the URL slug should match the folder name. The URL should be "https://block.github.io/goose/blog/2025/12/15/code-mode-mcp" instead of "code-mode-mcp-in-goose".
| <meta property="og:url" content="https://block.github.io/goose/blog/2025/12/15/code-mode-mcp-in-goose" /> | |
| <meta property="og:url" content="https://block.github.io/goose/blog/2025/12/15/code-mode-mcp" /> |
2beebd9 to
5b0a6a9
Compare
5b0a6a9 to
03802e1
Compare
* 'main' of github.com:block/goose: (28 commits) Clean PR preview sites from gh-pages branch history (#6161) fix: make goose reviewer less sycophantic (#6171) revert /reply to previous behavior (replacing session history) when full conversation provided (#6058) chore: manually update version (#6166) Integrate pricing with canonical model (#6130) Regenerate canonical models when release branch is created. (#6127) fix: use correct parameter name in read_module handler (#6148) docs: blog for code mode MCP (#6126) test: add ACP integration test (#6150) docs: auto download updates (#6163) fix: respect default_enabled value of platform extensions (#6159) docs: skills (#6062) fix: add conditional configuration for GOOSE_BIN_DIR in PATH (#5940) Update dependencies to help in Fedora packaging (#5835) fix: make goose reviewer less bad (#6154) docs: create/edit recipe button (#6145) fix(google): Fix 400 Bad Request error with Gemini 3 thought signatures (#6035) fix: we don't need to warn about tool count when in code mode (#6149) deps: upgrade agent-client-protocol to 0.9.0 (#6109) fix(providers): fix for gemini-cli on windows to work around cmd's multiline prompt limitations #5911 (#5966) ... # Conflicts: # ui/desktop/src/api/sdk.gen.ts # ui/desktop/src/hooks/useAgent.ts
A blog for #6030
Will need to wait for a release, but should be in v1.17.0 I think